package com.sgcc.ln.pmos.common.dialog;

import static com.blankj.utilcode.util.ColorUtils.getColor;

import android.content.Context;
import android.graphics.Color;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

import androidx.annotation.NonNull;

import com.alibaba.android.arouter.launcher.ARouter;
import com.bigkoo.pickerview.builder.TimePickerBuilder;
import com.bigkoo.pickerview.view.TimePickerView;
import com.blankj.utilcode.util.TimeUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.lxj.xpopup.core.DrawerPopupView;
import com.sgcc.ln.pmos.arouter.mall.MallArouterPath;
import com.sgcc.pmos.nativesdk.R;
import com.sgcc.ln.pmos.common.bean.GoodScreenBackBean;
import com.sgcc.ln.pmos.common.bean.RatioCurveBean;
import com.sgcc.ln.pmos.common.http.HttpInterConst;
import com.sgcc.ln.pmos.common.http.HttpRequestUtils;
import com.sgcc.ln.pmos.common.http.MvcNetCallback;
import com.sgcc.ln.pmos.common.utils.DateUtils;
import com.sgcc.ln.pmos.common.view.SetMealView;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;


/**
 * @author ChaoAJ
 * @describe 商品筛选弹窗
 * @time 2022/8/29 17:55
 */
public class GoodScreenDialog extends DrawerPopupView implements View.OnClickListener {
    private RelativeLayout mRlCurveType;// 选择典型曲线
    private TextView mTvCurveType;//选择典型曲线
    private int curveSelectPosition = 0;//曲线选择position
    private TextView mTvBuyMonthUnlimited;//购买月份 不限
    private TextView mTvBuyMonthStartDate;//购买月份 开始日期
    private TextView mTvBuyMonthEndDate;//购买月份 结束日期
    private TextView mTvBuyMonthNext;//购买月份 次月启售
    private TextView mTvMixBuyCycleUnlimited;//最小购买周期 不限
    private TextView tvMixBuyCycleAll;//最小购买周期 全部
    private EditText mEtMixBuyCycleInput;//最小购买周期 输入
    private EditText mEtMixBuyCycleInput1;//最小购买周期 输入
    private TextView mTvMixBuyCycleMonth;//最小购买周期 自然月
    private TextView mTvMixBuyCycleQuarter;//最小购买周期 自然季
    private TextView mTvMixBuyCycleYear;//最小购买周期 自然年
    private TextView mTvShelfTimeUnlimited;//上架时间 不限
    private TextView mTvShelfTimeStartDate;//上架时间 开始日期
    private TextView mTvShelfTimeEndDate;//上架时间 结束日期
    private TextView mTvShelfTime1;//上架时间 近一月
    private TextView mTvShelfTime3;//上架时间 近三月
    private TextView mTvShelfTime6;//上架时间 近六月
    private TextView mTvRelieveUnlimited;// 解约条件 不限
    //    private TextView mTvRelieveNot;// 解约条件 无条件
    private TextView mTvRelieveHas;// 解约条件 有条件
    private TextView mTvRelieveBoth;// 解约条件 经双边确认解约
    //    private TextView mTvRelieveMayNot;// 解约条件 不可解约
    private TextView mTvChangeUnlimited;//可变更  不限
    private TextView mTvChangeYes;//可变更  是
    private TextView mTvChangeNo;//可变更  否
    private TextView mTvCombinationUnlimited;//基准套餐+浮动套餐 不限
    private TextView mTvCombinationYes;//基准套餐+浮动套餐 是
    private TextView mTvCombinationNo;//基准套餐+浮动套餐 否
    private LinearLayout mLlCoefficientLayout;//系数 布局
    private EditText mEtCoefficientUpStart; // 用户向上承当系数 开始
    private EditText mEtCoefficientUpEnd;// 用户向上承当系数 结束
    private EditText mEtCoefficientDownStart;// 用户向下分成系数 开始
    private EditText mEtCoefficientDownEnd;// 用户向下分成系数 开始
    private LinearLayout mLlSetMealLayout; // 套餐Layout
    private TextView mTvReset;//重置
    private TextView mTvSearch;//搜索
    private TextView mTvGoodsTypeUnlimited,mTvGoodsTypescldjg,mTvGoodsTypebfsykj,mTvGoodsTypefsykj,mTvGoodsTypegdjfd,mTvGoodsTypeOther;

    private OnSearchClickListener onSearchClickListener;

    private GoodScreenBackBean goodScreenBackBean;
    private GoodScreenBackBean.PackageInfoCombVo packageInfoCombVo;//基准套餐+浮动套餐内容
    private GoodScreenBackBean.SchemeCombVo mainSchemeCombVo; //基准套餐：
    private GoodScreenBackBean.SchemeCombVo floSchemeCombVo; // 浮动套餐：
    private GoodScreenBackBean.SchemeCombVo schemeCombVo; //单一套餐内容
    private SetMealView mainSchemeCombView;//基准套餐view
    private SetMealView floSchemeCombView;//浮动套餐view
    private SetMealView schemeCombView;//单一套餐view
    private ArrayList<RatioCurveBean.Bean> ratioCurveList;


    public GoodScreenDialog(@NonNull Context context,
                            GoodScreenBackBean goodScreenBackBean,
                            OnSearchClickListener onSearchClickListener) {
        super(context);
        this.onSearchClickListener = onSearchClickListener;
        this.goodScreenBackBean = goodScreenBackBean;
    }

    public GoodScreenDialog setOnSearchClickListener(OnSearchClickListener onSearchClickListener) {
        this.onSearchClickListener = onSearchClickListener;
        return this;
    }

    @Override
    protected int getImplLayoutId() {
        return R.layout.dialog_good_screen_layout;
    }

    @Override
    protected void onCreate() {
        mRlCurveType = findViewById(R.id.rlCurveType);
        mTvCurveType = findViewById(R.id.tvCurveType);
        mTvBuyMonthUnlimited = findViewById(R.id.tvBuyMonthUnlimited);
        mTvBuyMonthStartDate = findViewById(R.id.tvBuyMonthStartDate);
        mTvBuyMonthEndDate = findViewById(R.id.tvBuyMonthEndDate);
        mTvBuyMonthNext = findViewById(R.id.tvBuyMonthNext);
        mTvMixBuyCycleUnlimited = findViewById(R.id.tvMixBuyCycleUnlimited);
        tvMixBuyCycleAll = findViewById(R.id.tvMixBuyCycleAll);
        mEtMixBuyCycleInput = findViewById(R.id.etMixBuyCycleInput);
        mEtMixBuyCycleInput1 = findViewById(R.id.etMixBuyCycleInput1);
        mTvMixBuyCycleMonth = findViewById(R.id.tvMixBuyCycleMonth);
        mTvMixBuyCycleQuarter = findViewById(R.id.tvMixBuyCycleQuarter);
        mTvMixBuyCycleYear = findViewById(R.id.tvMixBuyCycleYear);
        mTvShelfTimeUnlimited = findViewById(R.id.tvShelfTimeUnlimited);
        mTvShelfTimeStartDate = findViewById(R.id.tvShelfTimeStartDate);
        mTvShelfTimeEndDate = findViewById(R.id.tvShelfTimeEndDate);
        mTvShelfTime1 = findViewById(R.id.tvShelfTime1);
        mTvShelfTime3 = findViewById(R.id.tvShelfTime3);
        mTvShelfTime6 = findViewById(R.id.tvShelfTime6);
        mTvRelieveUnlimited = findViewById(R.id.tvRelieveUnlimited);
//        mTvRelieveNot = findViewById(R.id.tvRelieveNot);
        mTvRelieveHas = findViewById(R.id.tvRelieveHas);
        mTvRelieveBoth = findViewById(R.id.tvRelieveBoth);
//        mTvRelieveMayNot = findViewById(R.id.tvRelieveMayNot);
        mTvChangeUnlimited = findViewById(R.id.tvChangeUnlimited);
        mTvChangeYes = findViewById(R.id.tvChangeYes);
        mTvChangeNo = findViewById(R.id.tvChangeNo);
        mTvCombinationUnlimited = findViewById(R.id.tvCombinationUnlimited);
        mTvCombinationYes = findViewById(R.id.tvCombinationYes);
        mTvCombinationNo = findViewById(R.id.tvCombinationNo);
        mLlCoefficientLayout = findViewById(R.id.llCoefficientLayout);
        mEtCoefficientUpStart = findViewById(R.id.etCoefficientUpStart);
        mEtCoefficientUpEnd = findViewById(R.id.etCoefficientUpEnd);
        mEtCoefficientDownStart = findViewById(R.id.etCoefficientDownStart);
        mEtCoefficientDownEnd = findViewById(R.id.etCoefficientDownEnd);
        mLlSetMealLayout = findViewById(R.id.llSetMealLayout);
        mTvReset = findViewById(R.id.tvReset);
        mTvSearch = findViewById(R.id.tvGoodsSearch);

        mTvGoodsTypeUnlimited = findViewById(R.id.tvGoodsTypeUnlimited);
        mTvGoodsTypescldjg = findViewById(R.id.tvGoodsTypescldjg);
        mTvGoodsTypebfsykj = findViewById(R.id.tvGoodsTypebfsykj);
        mTvGoodsTypefsykj = findViewById(R.id.tvGoodsTypefsykj);
        mTvGoodsTypegdjfd = findViewById(R.id.tvGoodsTypegdjfd);
        mTvGoodsTypeOther = findViewById(R.id.tvGoodsTypeOther);

        mTvGoodsTypeUnlimited.setOnClickListener(this);//商品类型--不限
        mTvGoodsTypescldjg.setOnClickListener(this);//商品类型--市场联动价格
        mTvGoodsTypebfsykj.setOnClickListener(this);//商品类型--不分时一口价
        mTvGoodsTypefsykj.setOnClickListener(this);//商品类型--分时一口价
        mTvGoodsTypegdjfd.setOnClickListener(this);//商品类型--固定价封顶
        mTvGoodsTypeOther.setOnClickListener(this);//商品类型--其它

        mTvReset.setOnClickListener(this);//重置
        mRlCurveType.setOnClickListener(this);//选择典型曲线
        mTvBuyMonthUnlimited.setOnClickListener(this);//购买月份 不限
        mTvBuyMonthStartDate.setOnClickListener(this);//购买月份 开始日期
        mTvBuyMonthEndDate.setOnClickListener(this);//购买月份 结束日期
        mTvBuyMonthNext.setOnClickListener(this);//购买月份 次月启售
        mTvMixBuyCycleUnlimited.setOnClickListener(this);//最小购买周期 不限
        tvMixBuyCycleAll.setOnClickListener(this);//最小购买周期 全部
        mTvMixBuyCycleMonth.setOnClickListener(this);//最小购买周期 自然月
        mTvMixBuyCycleQuarter.setOnClickListener(this);//最小购买周期 自然季
        mTvMixBuyCycleYear.setOnClickListener(this);//最小购买周期 自然年
        mTvShelfTimeUnlimited.setOnClickListener(this);//上架时间 不限
        mTvShelfTimeStartDate.setOnClickListener(this);//上架时间 开始日期
        mTvShelfTimeEndDate.setOnClickListener(this);//上架时间 结束日期
        mTvShelfTime1.setOnClickListener(this);//上架时间 近一月
        mTvShelfTime3.setOnClickListener(this);//上架时间 近三月
        mTvShelfTime6.setOnClickListener(this);//上架时间 近六月
        mTvRelieveUnlimited.setOnClickListener(this);// 解约条件 不限
//        mTvRelieveNot.setOnClickListener(this);// 解约条件 无条件
        mTvRelieveHas.setOnClickListener(this);// 解约条件 有条件
        mTvRelieveBoth.setOnClickListener(this);// 解约条件 经双边确认解约
//        mTvRelieveMayNot.setOnClickListener(this);// 解约条件 不可解约
        mTvChangeUnlimited.setOnClickListener(this);//可变更  不限
        mTvChangeYes.setOnClickListener(this);//可变更  是
        mTvChangeNo.setOnClickListener(this);//可变更  否
        mTvCombinationUnlimited.setOnClickListener(this);//基准套餐+浮动套餐 不限
        mTvCombinationYes.setOnClickListener(this);//基准套餐+浮动套餐 是
        mTvCombinationNo.setOnClickListener(this);//基准套餐+浮动套餐 否

        if (null == goodScreenBackBean)
            goodScreenBackBean = new GoodScreenBackBean();
        if (null == packageInfoCombVo)
            packageInfoCombVo = new GoodScreenBackBean.PackageInfoCombVo();
        if (null == mainSchemeCombVo)
            mainSchemeCombVo = new GoodScreenBackBean.SchemeCombVo();
        if (null == floSchemeCombVo)
            floSchemeCombVo = new GoodScreenBackBean.SchemeCombVo();
        if (null == schemeCombVo)
            schemeCombVo = new GoodScreenBackBean.SchemeCombVo();
        initView();
        getRatioCurve();

        mTvSearch.setOnClickListener(new OnClickListener() {//搜索
            @Override
            public void onClick(View view) {
                // 购买周期
                if (!goodScreenBackBean.getConstrMinCyc().equals("04")) {
                    String constrMin = mEtMixBuyCycleInput.getText().toString().trim();
                    String constrMin1 = mEtMixBuyCycleInput1.getText().toString().trim();
                    goodScreenBackBean.setConstrMin(constrMin);
                    goodScreenBackBean.setConstrMax(constrMin1);
                }

                //基准套餐+浮动套餐内容
                if (null != packageInfoCombVo && !TextUtils.isEmpty(packageInfoCombVo.getIsDoublePackage())) {

                    if (packageInfoCombVo.getIsDoublePackage().equals("1")) { //基准套餐+浮动套餐内容 是 基准套餐+浮动套餐
                        String schemeRatio1Start = mEtCoefficientUpStart.getText().toString().trim();
//                    if (TextUtils.isEmpty(schemeRatio1Start)) {
//                        ToastUtils.showShort("请输入用户向上承担系数开始值");
//                        return;
//                    }
                        packageInfoCombVo.setSchemeRatio1Start(schemeRatio1Start);
                        String schemeRatio1End = mEtCoefficientUpEnd.getText().toString().trim();
//                    if (TextUtils.isEmpty(schemeRatio1End)) {
//                        ToastUtils.showShort("请输入用户向上承担系数结束值");
//                        return;
//                    }
                        packageInfoCombVo.setSchemeRatio1End(schemeRatio1End);
                        String schemeRatio2Start = mEtCoefficientDownStart.getText().toString().trim();
//                    if (TextUtils.isEmpty(schemeRatio2Start)) {
//                        ToastUtils.showShort("请输入用户向下分成系数开始值");
//                        return;
//                    }
                        packageInfoCombVo.setSchemeRatio2Start(schemeRatio2Start);
                        String schemeRatio2End = mEtCoefficientDownEnd.getText().toString().trim();
//                    if (TextUtils.isEmpty(schemeRatio2End)) {
//                        ToastUtils.showShort("请输入用户向上承担系数结束值");
//                        return;
//                    }
                        packageInfoCombVo.setSchemeRatio2End(schemeRatio2End);

                        GoodScreenBackBean.SchemeCombVo data = mainSchemeCombView.getData();

                        GoodScreenBackBean.SchemeCombVo data1 = floSchemeCombView.getData();
                        goodScreenBackBean.setMainSchemeCombVo(data);
                        goodScreenBackBean.setFloSchemeCombVo(data1);
                        goodScreenBackBean.setSchemeCombVo(null);
                    } else if (packageInfoCombVo.getIsDoublePackage().equals("2")) { //基准套餐+浮动套餐内容 否 单一套餐
                        GoodScreenBackBean.SchemeCombVo data = schemeCombView.getData();
                        if (null == data)
                            return;
                        goodScreenBackBean.setSchemeCombVo(data);
                        goodScreenBackBean.setMainSchemeCombVo(null);
                        goodScreenBackBean.setFloSchemeCombVo(null);
                    }
                    goodScreenBackBean.setPackageInfoCombVo(packageInfoCombVo);
                }

                onSearchClickListener.onClick(goodScreenBackBean);
                dismiss();


            }
        });//搜索

//        llSetMealLayout.addView(new SetMealView(getContext()));
//        llSetMealLayout.addView(new SetMealView(getContext()));

    }

    @Override
    public void onClick(View view) {
        int id = view.getId();
        if (id == R.id.tvReset) {//重置
            initView();
        } else if (id == R.id.rlCurveType) {//选择典型曲线
            ARouter.getInstance()
                    .build(MallArouterPath.MALL_SELECT_CURVE)
                    .withSerializable("ratioCurveList", ratioCurveList)
                    .withInt("position", curveSelectPosition)
                    .navigation();

        } else if (id == R.id.tvBuyMonthUnlimited) {//购买月份 不限
            goodScreenBackBean.setMonthStartDate("");
            goodScreenBackBean.setMonthEndDate("");
            mTvBuyMonthUnlimited.setSelected(true);//购买月份 不限
            mTvBuyMonthNext.setSelected(false);//购买月份 次月启售

            mTvBuyMonthStartDate.setEnabled(true);//不限可以选择日期
            mTvBuyMonthEndDate.setEnabled(true);
            mTvBuyMonthStartDate.setText("选择日期");
            mTvBuyMonthEndDate.setText("选择日期");
        } else if (id == R.id.tvBuyMonthStartDate) {//购买月份 开始日期

            showDateSelect(0, false);

        } else if (id == R.id.tvBuyMonthEndDate) {//购买月份 结束日期

            showDateSelect(1, false);

        } else if (id == R.id.tvBuyMonthNext) {//购买月份 次月启售

            mTvBuyMonthUnlimited.setSelected(false);//购买月份 不限
            mTvBuyMonthNext.setSelected(true);//购买月份 次月启售

            mTvBuyMonthStartDate.setEnabled(false);//不可以选择日期
            mTvBuyMonthEndDate.setEnabled(false);
            String dd = TimeUtils.millis2String(TimeUtils.getNowMills(), "dd");
            String month = DateUtils.getMonthBackString(Integer.parseInt(dd) >= 15 ? 2 : 1, "yyyy-MM");

            mTvBuyMonthStartDate.setText(month);
            mTvBuyMonthEndDate.setText(month);

            goodScreenBackBean.setMonthStartDate(month + "-01");
            goodScreenBackBean.setMonthEndDate("");

        } else if (id == R.id.tvMixBuyCycleUnlimited) {//最小购买周期 不限
            mEtMixBuyCycleInput.setEnabled(true);//不限的时候不禁止输入
            mEtMixBuyCycleInput1.setEnabled(true);//不限的时候不禁止输入
            mEtMixBuyCycleInput.setText("");
            mEtMixBuyCycleInput1.setText("");
            mTvMixBuyCycleUnlimited.setSelected(true);//最小购买周期  不限
            tvMixBuyCycleAll.setSelected(false);//最小购买周期  全部
            mTvMixBuyCycleMonth.setSelected(false);//最小购买周期 自然月
            mTvMixBuyCycleQuarter.setSelected(false);//最小购买周期 自然季
            mTvMixBuyCycleYear.setSelected(false);//最小购买周期 自然年

            goodScreenBackBean.setConstrMin("");
            goodScreenBackBean.setConstrMax("");
            goodScreenBackBean.setConstrMinCyc("");

        } else if (id == R.id.tvMixBuyCycleAll) {//最小购买周期 全部

            mEtMixBuyCycleInput.setEnabled(false);//全部的时候禁止输入
            mEtMixBuyCycleInput1.setEnabled(false);//全部的时候禁止输入
            mEtMixBuyCycleInput.setText("");
            mEtMixBuyCycleInput1.setText("");
            mTvMixBuyCycleUnlimited.setSelected(false);//最小购买周期 不限
            tvMixBuyCycleAll.setSelected(true);//最小购买周期  全部
            mTvMixBuyCycleMonth.setSelected(false);//最小购买周期 自然月
            mTvMixBuyCycleQuarter.setSelected(false);//最小购买周期 自然季
            mTvMixBuyCycleYear.setSelected(false);//最小购买周期 自然年
            goodScreenBackBean.setConstrMinCyc("04");
            goodScreenBackBean.setConstrMin("");
            goodScreenBackBean.setConstrMax("");

        } else if (id == R.id.tvMixBuyCycleMonth) {//最小购买周期 自然月
            mEtMixBuyCycleInput.setEnabled(true);
            mEtMixBuyCycleInput1.setEnabled(true);

            mTvMixBuyCycleUnlimited.setSelected(false);//最小购买周期 不限
            tvMixBuyCycleAll.setSelected(false);//最小购买周期  全部
            mTvMixBuyCycleMonth.setSelected(true);//最小购买周期 自然月
            mTvMixBuyCycleQuarter.setSelected(false);//最小购买周期 自然季
            mTvMixBuyCycleYear.setSelected(false);//最小购买周期 自然年


            goodScreenBackBean.setConstrMinCyc("01");

        } else if (id == R.id.tvMixBuyCycleQuarter) {//最小购买周期 自然季
            mEtMixBuyCycleInput.setEnabled(true);
            mEtMixBuyCycleInput1.setEnabled(true);

            mTvMixBuyCycleUnlimited.setSelected(false);//最小购买周期 不限
            tvMixBuyCycleAll.setSelected(false);//最小购买周期  全部
            mTvMixBuyCycleMonth.setSelected(false);//最小购买周期 自然月
            mTvMixBuyCycleQuarter.setSelected(true);//最小购买周期 自然季
            mTvMixBuyCycleYear.setSelected(false);//最小购买周期 自然年
            goodScreenBackBean.setConstrMinCyc("02");

        } else if (id == R.id.tvMixBuyCycleYear) {//最小购买周期 自然年
            mEtMixBuyCycleInput.setEnabled(true);
            mEtMixBuyCycleInput1.setEnabled(true);

            mTvMixBuyCycleUnlimited.setSelected(false);//最小购买周期 不限
            tvMixBuyCycleAll.setSelected(false);//最小购买周期  全部
            mTvMixBuyCycleMonth.setSelected(false);//最小购买周期 自然月
            mTvMixBuyCycleQuarter.setSelected(false);//最小购买周期 自然季
            mTvMixBuyCycleYear.setSelected(true);//最小购买周期 自然年
            goodScreenBackBean.setConstrMinCyc("03");

        } else if (id == R.id.tvShelfTimeUnlimited) {//上架时间 不限
            mTvShelfTimeUnlimited.setSelected(true);//上架时间 不限
            mTvShelfTime1.setSelected(false);//上架时间 近一月
            mTvShelfTime3.setSelected(false);//上架时间 近三月
            mTvShelfTime6.setSelected(false);//上架时间 近六月

            mTvShelfTimeStartDate.setEnabled(true);//上架时间 开始日期 可以点击
            mTvShelfTimeEndDate.setEnabled(true);//上架时间 结束日期 可以点击

            mTvShelfTimeStartDate.setText("选择日期");//上架时间 开始日期
            mTvShelfTimeEndDate.setText("选择日期");//上架时间 结束日期
            goodScreenBackBean.setStartDate("");
            goodScreenBackBean.setEndDate("");

        } else if (id == R.id.tvShelfTimeStartDate) {//上架时间 开始日期
            showDateSelect(2, true);

        } else if (id == R.id.tvShelfTimeEndDate) {//上架时间 结束日期

            showDateSelect(3, true);
        } else if (id == R.id.tvShelfTime1) {//上架时间 近一月

            mTvShelfTimeUnlimited.setSelected(false);//上架时间 不限
            mTvShelfTime1.setSelected(true);//上架时间 近一月
            mTvShelfTime3.setSelected(false);//上架时间 近三月
            mTvShelfTime6.setSelected(false);//上架时间 近六月

            mTvShelfTimeStartDate.setEnabled(false);//上架时间 开始日期 禁止点击
            mTvShelfTimeEndDate.setEnabled(false);//上架时间 结束日期 禁止点击

            String string = TimeUtils.date2String(TimeUtils.getNowDate(), "yyyy-MM-dd");

            String month = DateUtils.getMonthBackString(-1, "yyyy-MM-dd");
            mTvShelfTimeStartDate.setText(month);

            mTvShelfTimeEndDate.setText(string);

            goodScreenBackBean.setStartDate(month);
            goodScreenBackBean.setEndDate(string);


        } else if (id == R.id.tvShelfTime3) {//上架时间 近3月

            mTvShelfTimeUnlimited.setSelected(false);//上架时间 不限
            mTvShelfTime1.setSelected(false);//上架时间 近一月
            mTvShelfTime3.setSelected(true);//上架时间 近三月
            mTvShelfTime6.setSelected(false);//上架时间 近六月
            mTvShelfTimeStartDate.setEnabled(false);//上架时间 开始日期 禁止点击
            mTvShelfTimeEndDate.setEnabled(false);//上架时间 结束日期 禁止点击

            String string = TimeUtils.date2String(TimeUtils.getNowDate(), "yyyy-MM-dd");
            String month = DateUtils.getMonthBackString(-3, "yyyy-MM-dd");

            mTvShelfTimeStartDate.setText(month);
            mTvShelfTimeEndDate.setText(string);

            goodScreenBackBean.setStartDate(month);
            goodScreenBackBean.setEndDate(string);

        } else if (id == R.id.tvShelfTime6) {//上架时间 近6月

            mTvShelfTimeUnlimited.setSelected(false);//上架时间 不限
            mTvShelfTime1.setSelected(false);//上架时间 近一月
            mTvShelfTime3.setSelected(false);//上架时间 近三月
            mTvShelfTime6.setSelected(true);//上架时间 近六月
            mTvShelfTimeStartDate.setEnabled(false);//上架时间 开始日期 禁止点击
            mTvShelfTimeEndDate.setEnabled(false);//上架时间 结束日期 禁止点击

            String string = TimeUtils.date2String(TimeUtils.getNowDate(), "yyyy-MM-dd");
            String month = DateUtils.getMonthBackString(-6, "yyyy-MM-dd");
            mTvShelfTimeStartDate.setText(month);
            mTvShelfTimeEndDate.setText(string);
            goodScreenBackBean.setStartDate(month);
            goodScreenBackBean.setEndDate(string);

        } else if (id == R.id.tvRelieveUnlimited) {//解约条件 不限
            goodScreenBackBean.setConstrRel("");
            mTvRelieveUnlimited.setSelected(true);// 解约条件 不限
//            mTvRelieveNot.setSelected(false);// 解约条件 无条件
            mTvRelieveHas.setSelected(false);// 解约条件 有条件
            mTvRelieveBoth.setSelected(false);// 解约条件 经双边确认解约
//            mTvRelieveMayNot.setSelected(false);// 解约条件 不可解约

//        } else if (id == R.id.tvRelieveNot) {//解约条件 无条件
//            goodScreenBackBean.setConstrRel("1");
//            mTvRelieveUnlimited.setSelected(false);// 解约条件 不限
//            mTvRelieveNot.setSelected(true);// 解约条件 无条件
//            mTvRelieveHas.setSelected(false);// 解约条件 有条件
//            mTvRelieveBoth.setSelected(false);// 解约条件 经双边确认解约
//            mTvRelieveMayNot.setSelected(false);// 解约条件 不可解约

        } else if (id == R.id.tvRelieveHas) {//解约条件 有条件
            goodScreenBackBean.setConstrRel("2");
            mTvRelieveUnlimited.setSelected(false);// 解约条件 不限
//            mTvRelieveNot.setSelected(false);// 解约条件 无条件
            mTvRelieveHas.setSelected(true);// 解约条件 有条件
            mTvRelieveBoth.setSelected(false);// 解约条件 经双边确认解约
//            mTvRelieveMayNot.setSelected(false);// 解约条件 不可解约

        } else if (id == R.id.tvRelieveBoth) {//解约条件 经双边确认解约
            goodScreenBackBean.setConstrRel("4");
            mTvRelieveUnlimited.setSelected(false);// 解约条件 不限
//            mTvRelieveNot.setSelected(false);// 解约条件 无条件
            mTvRelieveHas.setSelected(false);// 解约条件 有条件
            mTvRelieveBoth.setSelected(true);// 解约条件 经双边确认解约
//            mTvRelieveMayNot.setSelected(false);// 解约条件 不可解约
//
//        } else if (id == R.id.tvRelieveMayNot) {//解约条件 不可解约
//            goodScreenBackBean.setConstrRel("3");
//            mTvRelieveUnlimited.setSelected(false);// 解约条件 不限
//            mTvRelieveNot.setSelected(false);// 解约条件 无条件
//            mTvRelieveHas.setSelected(false);// 解约条件 有条件
//            mTvRelieveBoth.setSelected(false);// 解约条件 经双边确认解约
//            mTvRelieveMayNot.setSelected(true);// 解约条件 不可解约

        } else if (id == R.id.tvChangeUnlimited) {//可变更  不限
            goodScreenBackBean.setConstrMod("");
            mTvChangeUnlimited.setSelected(true);//可变更  不限
            mTvChangeYes.setSelected(false);//可变更  是
            mTvChangeNo.setSelected(false);//可变更  否

        } else if (id == R.id.tvChangeYes) {//可变更  是
            goodScreenBackBean.setConstrMod("1");
            mTvChangeUnlimited.setSelected(false);//可变更  不限
            mTvChangeYes.setSelected(true);//可变更  是
            mTvChangeNo.setSelected(false);//可变更  否

        } else if (id == R.id.tvChangeNo) {//可变更  否
            goodScreenBackBean.setConstrMod("0");
            mTvChangeUnlimited.setSelected(false);//可变更  不限
            mTvChangeYes.setSelected(false);//可变更  是
            mTvChangeNo.setSelected(true);//可变更  否

        } else if (id == R.id.tvCombinationUnlimited) {//基准套餐+浮动套餐 不限
            goodScreenBackBean.setPackageInfoCombVo(null);
            packageInfoCombVo.setIsDoublePackage("");
            mTvCombinationUnlimited.setSelected(true);//基准套餐+浮动套餐 不限
            mTvCombinationYes.setSelected(false);//基准套餐+浮动套餐 是
            mTvCombinationNo.setSelected(false);//基准套餐+浮动套餐 否
            mLlCoefficientLayout.setVisibility(GONE);//系数 布局
            mEtCoefficientUpStart.setText("");
            mEtCoefficientUpEnd.setText("");
            mEtCoefficientDownStart.setText("");
            mEtCoefficientDownEnd.setText("");
            removeLlSetMealLayout();

        } else if (id == R.id.tvCombinationYes) {//基准套餐+浮动套餐 是
            packageInfoCombVo.setIsDoublePackage("1");
            mTvCombinationUnlimited.setSelected(false);//基准套餐+浮动套餐 不限
            mTvCombinationYes.setSelected(true);//基准套餐+浮动套餐 是
            mTvCombinationNo.setSelected(false);//基准套餐+浮动套餐 否
            mLlCoefficientLayout.setVisibility(VISIBLE);//系数 布局

            removeLlSetMealLayout();

            schemeCombView = null;
            mainSchemeCombView = new SetMealView(getContext(), "基准套餐", mainSchemeCombVo);
            mLlSetMealLayout.addView(mainSchemeCombView);

            floSchemeCombView = new SetMealView(getContext(), "浮动套餐", floSchemeCombVo);
            mLlSetMealLayout.addView(floSchemeCombView);


        } else if (id == R.id.tvCombinationNo) {//基准套餐+浮动套餐 否
            packageInfoCombVo.setIsDoublePackage("2");
            mTvCombinationUnlimited.setSelected(false);//基准套餐+浮动套餐 不限
            mTvCombinationYes.setSelected(false);//基准套餐+浮动套餐 是
            mTvCombinationNo.setSelected(true);//基准套餐+浮动套餐 否
            mLlCoefficientLayout.setVisibility(GONE);//系数 布局
            mEtCoefficientUpStart.setText("");
            mEtCoefficientUpEnd.setText("");
            mEtCoefficientDownStart.setText("");
            mEtCoefficientDownEnd.setText("");
            removeLlSetMealLayout();
            mainSchemeCombView = null;
            floSchemeCombView = null;
            schemeCombView = new SetMealView(getContext(), "基础价格套餐", schemeCombVo);
            mLlSetMealLayout.addView(schemeCombView);
        }else if (id == R.id.tvGoodsTypeUnlimited){//商品类型--不限
            goodScreenBackBean.setPackageType(null);
            mTvGoodsTypeUnlimited.setSelected(true);
            mTvGoodsTypescldjg .setSelected(false);
            mTvGoodsTypebfsykj .setSelected(false);
            mTvGoodsTypefsykj .setSelected(false);
            mTvGoodsTypegdjfd .setSelected(false);
            mTvGoodsTypeOther .setSelected(false);
        }else if (id == R.id.tvGoodsTypescldjg){//商品类型--市场联动价格
            goodScreenBackBean.setPackageType("01");
            mTvGoodsTypeUnlimited.setSelected(false);
            mTvGoodsTypescldjg .setSelected(true);
            mTvGoodsTypebfsykj .setSelected(false);
            mTvGoodsTypefsykj .setSelected(false);
            mTvGoodsTypegdjfd .setSelected(false);
            mTvGoodsTypeOther .setSelected(false);
        }else if (id == R.id.tvGoodsTypebfsykj){//商品类型--不分时一口价
            goodScreenBackBean.setPackageType("02");
            mTvGoodsTypeUnlimited.setSelected(false);
            mTvGoodsTypescldjg .setSelected(false);
            mTvGoodsTypebfsykj .setSelected(true);
            mTvGoodsTypefsykj .setSelected(false);
            mTvGoodsTypegdjfd .setSelected(false);
            mTvGoodsTypeOther .setSelected(false);
        }else if (id == R.id.tvGoodsTypefsykj){//商品类型--分时一口价
            goodScreenBackBean.setPackageType("03");
            mTvGoodsTypeUnlimited.setSelected(false);
            mTvGoodsTypescldjg .setSelected(false);
            mTvGoodsTypebfsykj .setSelected(false);
            mTvGoodsTypefsykj .setSelected(true);
            mTvGoodsTypegdjfd .setSelected(false);
            mTvGoodsTypeOther .setSelected(false);
        }else if (id == R.id.tvGoodsTypegdjfd){//商品类型--固定价封顶
            goodScreenBackBean.setPackageType("04");
            mTvGoodsTypeUnlimited.setSelected(false);
            mTvGoodsTypescldjg .setSelected(false);
            mTvGoodsTypebfsykj .setSelected(false);
            mTvGoodsTypefsykj .setSelected(false);
            mTvGoodsTypegdjfd .setSelected(true);
            mTvGoodsTypeOther .setSelected(false);
        }else if (id == R.id.tvGoodsTypeOther){//商品类型--其它
            goodScreenBackBean.setPackageType("05");
            mTvGoodsTypeUnlimited.setSelected(false);
            mTvGoodsTypescldjg .setSelected(false);
            mTvGoodsTypebfsykj .setSelected(false);
            mTvGoodsTypefsykj .setSelected(false);
            mTvGoodsTypegdjfd .setSelected(false);
            mTvGoodsTypeOther .setSelected(true);
        }
    }


    /**
     * 初始化 or 重置
     */
    private void initView() {
        mTvBuyMonthUnlimited.setSelected(true);//购买月份 不限
        mTvBuyMonthStartDate.setText("选择日期");//购买月份 开始日期
        mTvBuyMonthEndDate.setText("选择日期");//购买月份 结束日期
        mTvBuyMonthNext.setSelected(false);//购买月份 次月启售
        mTvMixBuyCycleUnlimited.setSelected(true);//最小购买周期 不限
        tvMixBuyCycleAll.setSelected(false);//最小购买周期 全部
        mEtMixBuyCycleInput.setText("");//最小购买周期 输入
        mEtMixBuyCycleInput1.setText("");//最小购买周期 输入
        mEtMixBuyCycleInput.setEnabled(true);//不限的时候不禁止输入
        mEtMixBuyCycleInput1.setEnabled(true);//不限的时候不禁止输入
        mTvMixBuyCycleMonth.setSelected(false);//最小购买周期 自然月
        mTvMixBuyCycleQuarter.setSelected(false);//最小购买周期 自然季
        mTvMixBuyCycleYear.setSelected(false);//最小购买周期 自然年
        mTvShelfTimeUnlimited.setSelected(true);//上架时间 不限
        mTvShelfTimeStartDate.setText("选择日期");//上架时间 开始日期
        mTvShelfTimeEndDate.setText("选择日期");//上架时间 结束日期
        mTvShelfTime1.setSelected(false);//上架时间 近一月
        mTvShelfTime3.setSelected(false);//上架时间 近三月
        mTvShelfTime6.setSelected(false);//上架时间 近六月
        mTvRelieveUnlimited.setSelected(true);// 解约条件 不限
//        mTvRelieveNot.setSelected(false);// 解约条件 无条件
        mTvRelieveHas.setSelected(false);// 解约条件 有条件
        mTvRelieveBoth.setSelected(false);// 解约条件 经双边确认解约
//        mTvRelieveMayNot.setSelected(false);// 解约条件 不可解约
        mTvChangeUnlimited.setSelected(true);//可变更  不限
        mTvChangeYes.setSelected(false);//可变更  是
        mTvChangeNo.setSelected(false);//可变更  否
        mTvCombinationUnlimited.setSelected(true);//基准套餐+浮动套餐 不限
        mTvCombinationYes.setSelected(false);//基准套餐+浮动套餐 是
        mTvCombinationNo.setSelected(false);//基准套餐+浮动套餐 否
        mLlCoefficientLayout.setVisibility(GONE);
        removeLlSetMealLayout();
        goodScreenBackBean.setRatioId("");
        goodScreenBackBean.setMonthStartDate("");
        goodScreenBackBean.setMonthEndDate("");
        goodScreenBackBean.setConstrMin("");
        goodScreenBackBean.setConstrMinCyc("");
        goodScreenBackBean.setStartDate("");
        goodScreenBackBean.setEndDate("");
        goodScreenBackBean.setConstrMod("");
        goodScreenBackBean.setConstrRel("");
        packageInfoCombVo.setIsDoublePackage("");
        goodScreenBackBean.setPackageInfoCombVo(null);


    }


    private void removeLlSetMealLayout() {
        int childCount = mLlSetMealLayout.getChildCount();
        if (childCount > 0) {
            mLlSetMealLayout.removeAllViews();
        }

    }


    public void setText(RatioCurveBean.Bean bean) {
        for (int i = 0; i < ratioCurveList.size(); i++) {
            if (bean.getRatioId().equals(ratioCurveList.get(i).getRatioId())) {
                curveSelectPosition = i;
            }
        }
        goodScreenBackBean.setRatioId(bean.getRatioId());
        mTvCurveType.setText(bean.getRatioName());
    }


    private void showDateSelect(int type, boolean isShowDay) {
        Calendar startDate = Calendar.getInstance();
        startDate.set(2021, 0, 1);
        Calendar endDate = Calendar.getInstance();
        endDate.set(2099, 11, 31);
        TimePickerView pvTime = new TimePickerBuilder(getContext(), (date, v) -> {//选中事件回调
            if (type == 0) {//购买月份 开始日期
//                partTimeJobDateStart = date.getTime() / 1000;
                String string = TimeUtils.date2String(date, "yyyy-MM");
                goodScreenBackBean.setMonthStartDate(string + "-01");
                mTvBuyMonthStartDate.setText(string);
            }
            if (type == 1) {//购买月份 结束日期
//                partTimeJobDateEnd = date.getTime() / 1000;
                String string = TimeUtils.date2String(date, "yyyy-MM");
                goodScreenBackBean.setMonthEndDate(string + "-01");
                mTvBuyMonthEndDate.setText(string);
            }
            if (type == 2) {//上架时间 开始日期
//                partTimeJobDateEnd = date.getTime() / 1000;
                String string = TimeUtils.date2String(date, "yyyy-MM-dd");
                mTvShelfTimeStartDate.setText(string);
                goodScreenBackBean.setStartDate(string);

            }
            if (type == 3) {//上架时间 结束日期
//                partTimeJobDateEnd = date.getTime() / 1000;
                String string = TimeUtils.date2String(date, "yyyy-MM-dd");
                mTvShelfTimeEndDate.setText(string);
                goodScreenBackBean.setEndDate(string);
            }

        })
                .setType(new boolean[]{true, true, isShowDay, false, false, false})// 默认全部显示
                .setContentTextSize(16)//设置滚轮文字大小
                .setLineSpacingMultiplier(1.8f)
                .setDividerColor(Color.parseColor("#DCDCDC"))//设置分割线的颜色
                .setBgColor(Color.WHITE)
                .setTitleBgColor(Color.WHITE)
                .setRangDate(startDate, endDate)
                .setTextColorOut(getColor(R.color._999999))
                .setCancelColor(Color.parseColor("#333333"))
                .setSubmitColor(Color.parseColor("#0092FF"))
                .setTextColorCenter(Color.parseColor("#333333"))
                .isDialog(true)
                .isCenterLabel(false) //是否只显示中间选中项的label文字，false则每项item全部都带有label。
                .build();
        pvTime.show();
    }


    private void getRatioCurve() {
        HttpRequestUtils.getInstance().request(new HashMap<>(), HttpInterConst.GET_RATIO_CURVE, new MvcNetCallback<RatioCurveBean>() {
            @Override
            public void onResponse(RatioCurveBean response, int id) {
                super.onResponse(response, id);
                if (null != response) {
                    ratioCurveList = response.getData();
                    if (null != ratioCurveList && ratioCurveList.size() > 0) {
                        RatioCurveBean.Bean bean = ratioCurveList.get(0);
                        goodScreenBackBean.setRatioId(bean.getRatioId());
                        mTvCurveType.setText(bean.getRatioName());
                    }
                }
            }
        });
    }


}
